//krpano instance var krpano = null; //trace var debug = false; //is krpano loaded var krpanoLoaded = false; //methods to call when plugin is loaded var pluginLoaded = new ktools.Map(); //is tour started var isTourStarted = false; //fullscreen object var kolorFullscreen = null; //browser detection var kolorBrowserDetect = null; //start z-index value var kolorStartIndex = 4000; //target url for cross domains application var crossDomainTargetUrl = ''; var tourLanguage; if ( debug ) { if ( typeof(console) == 'undefined' ) { console = {log : function (text) {} }; } } /* ======== FULLSCREEN STUFF ========================================== */ /** * @description Register Fullscreen on DOM ready. */ jQuery(document).ready(function() { //add browser detection kolorBrowserDetect = new ktools.BrowserDetect(); kolorBrowserDetect.init(); //kolorBrowserDetect.browser : Browser string //kolorBrowserDetect.version : Browser version //kolorBrowserDetect.OS : Platform OS //add fullscreen kolorFullscreen = new ktools.Fullscreen(document.getElementById("tourDIV")); kolorFullscreen.supportsFullscreen(); //activate krpano fallback and update methods kolorFullscreen.setExternal({ 'enter': krPanoFullscreenEnter, 'exit': krPanoFullscreenExit, 'change': krpanoFullscreenChange, 'resize': krPanoFullscreenResize }); }); /** * @function * @description Enter fullscreen fallback method for krpano. * @return {void} */ function krPanoFullscreenEnter() { var ki = getKrPanoInstance(); if(ki !== null){ getKrPanoInstance().call("enterFullScreenFallback"); } } /** * @function * @description Exit fullscreen fallback method for krpano. * @return {void} */ function krPanoFullscreenExit() { var ki = getKrPanoInstance(); if(ki !== null){ ki.call("exitFullScreenFallback"); } } /** * @function * @description Launch method for krpano on fullscreen change event. * @param {Boolean} state If true enter fullscreen event, else exit fullscreen event. * @return {void} */ function krpanoFullscreenChange(state) { var ki = getKrPanoInstance(); if(ki !== null){ if(state){ getKrPanoInstance().call("enterFullScreenChangeEvent"); }else{ getKrPanoInstance().call("exitFullScreenChangeEvent"); } } } /** * @function * @description Launch resize method for krpano correct resize. * @return {void} */ function krPanoFullscreenResize() { var ki = getKrPanoInstance(); if(ki !== null){ getKrPanoInstance().call("resizeFullScreenEvent"); } } /** * @function * @description Set fullscreen mode. * @param {String|Boolean} value The fullscreen status: 'true' for open or 'false' for close. * @return {void} */ function setFullscreen(value) { var state; if(typeof value == "string") state = (value.toLowerCase() == "true"); else state = Boolean(value); if (kolorFullscreen) { if(state){ kolorFullscreen.request(); }else{ kolorFullscreen.exit(); } } } /* ========== DIALOG BETWEEN KRPANO/JS STUFF ================================= */ /** * @function * @description Get krpano instance. * @return {Object} krpano instance. */ function getKrPanoInstance() { if ( krpano == null ) { krpano = document.getElementById('krpanoSWFObject'); } return krpano; } /** * @function * @description Call krpano function. * @param {String} fnName The krpano action name. * @param {*} Following parameters are passed to the krPano function * @return {void} */ function invokeKrFunction(fnName) { var args = [].slice.call(arguments, 1); var callString = fnName+'('; for(var i=0, ii=args.length; i